Skip to content

Conversation

@vaishakdinesh
Copy link
Member

@vaishakdinesh vaishakdinesh commented Jan 23, 2026

related tf-migrate PR: cloudflare/tf-migrate#125

What changed:
Added provider-side state migration infrastructure for 3 resources transitioning from SDKv2 (v4) to Plugin Framework (v5).

Resources migrated:

  • 🔄 dns_record - renamed resource + state transformations
  • 🔄 page_rule - complex JSON transformations
  • 🔄 load_balancer_pool - nested object transformations

New infrastructure (per resource): migration/v500/
├── handler.go - StateUpgrader functions
├── model.go - Source (v4) and target (v5) models
├── schema.go - v4 schema definition for parsing old state
├── transform.go - State transformation logic
├── migrations_test.go - Migration tests (v4→v5)
└── testdata/ - Test configs (v4 + v5)

Key features:

  • ✅ Controlled rollout: TF_MIG_TEST=1 enables migrations during development
  • ✅ Automatic migration: StateUpgraders run during terraform apply (no manual steps)
  • ✅ Comprehensive tests: Dual test cases validate both v4→v5 and v5→v5 upgrades
  • ✅ Moved old tests: Deleted 1,448 lines of old migration tests (consolidated into new structure)

Notable transformations:

  • load_balancer_pool: SDK v2 TypeList MaxItems:1 (arrays) → Plugin Framework SingleNestedAttribute (objects)
  • dns_record: Resource rename + MoveState implementation
  • page_rule: Complex nested JSON structure changes

Result: +3,687 lines of migration infrastructure that enables seamless v4→v5 upgrades for users.

@vaishakdinesh vaishakdinesh marked this pull request as draft January 23, 2026 05:42
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 4 times, most recently from a66c74b to ec39134 Compare January 28, 2026 19:14
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 3 times, most recently from 470b78e to 49cd416 Compare January 28, 2026 21:06
@vaishakdinesh vaishakdinesh requested a review from a team January 29, 2026 02:28
@tamas-jozsa tamas-jozsa marked this pull request as ready for review January 29, 2026 17:29
@tamas-jozsa tamas-jozsa changed the title DRAFT: feat: state upgrader feat: state upgrader Jan 29, 2026
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 2 times, most recently from 5eb0925 to 99dee63 Compare January 29, 2026 17:44
@vaishakdinesh
Copy link
Member Author

Note: switch branch to next. Probably needs a rebase.
@tamas-jozsa I can handle that

@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 3 times, most recently from da21a7d to 3fff44f Compare January 29, 2026 19:30
@tamas-jozsa tamas-jozsa changed the base branch from main to next January 29, 2026 21:27
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 2 times, most recently from 8c538fa to b46e3eb Compare January 29, 2026 22:36
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch from 4919012 to 27a6b3c Compare January 30, 2026 13:51
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch 6 times, most recently from 640d610 to d60becf Compare January 30, 2026 15:45
@tamas-jozsa tamas-jozsa force-pushed the vaishak/stateupgrader-src-schema branch from d60becf to c950153 Compare January 30, 2026 16:31
@tamas-jozsa tamas-jozsa merged commit 1c20943 into next Jan 30, 2026
4 checks passed
@tamas-jozsa tamas-jozsa deleted the vaishak/stateupgrader-src-schema branch January 30, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants